#include "Funciones.h"

Funciones::Funciones() {

}

Funciones::~Funciones() {

}

int Funciones::stringToInt(const string &string) const {
	int aux;
	stringstream ss(string);

	ss >> aux;
	return aux;
}

unsigned int Funciones::stringToUInt(const string &string) const {
	unsigned int aux;
	stringstream ss(string);

	ss >> aux;
	return aux;
}

string Funciones::intToString(const int entero) const {
	stringstream ss;

	ss << entero;
	return ss.str();
}

bool Funciones::stringToBool(const string &string) const {
	bool aux;
	stringstream ss(string);

	ss >> aux;
	return aux;
}

string Funciones::boolToString(const bool booleano) const {
	stringstream ss;

	ss << booleano;
	return ss.str();
}

string Funciones::toUpperCase(const string &dato) {

	string aux;

	for ( unsigned int i = 0 ; i < dato.size() ; i++ ){

		char letraActual = (char)toupper(dato[i]);
		aux += letraActual;
	}
	return aux;
}

string Funciones::quitarLetra(char letra,const string &dato) {

	string aux;

	for ( unsigned int i = 0 ; i < dato.size() ; i++) {

		if ( dato[i] != letra) {
			aux += dato[i];
		}
	}
	return aux;
}

string Funciones::binarioAhexadecimal(const string &s) {

	char* buff = new char[s.size()*2 + 1];
	string resultado;

	for (unsigned int i = 0 ; i < s.size() ; i++) {
		unsigned char aux = s[i];
			sprintf(buff+i*2, "%02x", aux);
	}


	resultado.append(buff, s.size()*2);

	delete[] buff;

	return resultado;
}

string Funciones::crearStringAleatorio(unsigned int sizeString) {

	string stringAleatorio;

	for (unsigned int i = 0 ; i < sizeString ; i++) {
		char aux = rand() % 256;
		stringAleatorio += aux;
	}
	return stringAleatorio;
}
